Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

ПОБУДОВА РУХОМИХ ЗОБРАЖЕНЬ В СЕРЕДОВИЩІ MICROSOFT VISUAL STUDIO C++ 2008

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКТА
Факультет:
ЗІ
Кафедра:
Кафедра КСА

Інформація про роботу

Рік:
2014
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Програмування комп’ютерної графіки
Група:
СІ-21

Частина тексту файла

Міністерство освіти і науки України Національний університет “Львівська політехніка” Кафедра КСА Лабораторна робота №4 З курсу «Програмування комп’ютерної графіки» На тему: “ ПОБУДОВА РУХОМИХ ЗОБРАЖЕНЬ В СЕРЕДОВИЩІ MICROSOFT VISUAL STUDIO C++ 2008” Варіант № 23 Завдання: Написати програму мовою C++, що дозволяє сформувати на екрані комп’ютера рухоме зображення, використовуючи матричні операції. / Блок-схема алгоритму програми: Список ідентифікаторів констант, змінних, процедур і функцій: MoveTo( ) – переносить курсор у задану точку; LineTo( ) – будує лінію до заданої точки; SelectStockObject(BLACK_PEN)– функція для вибору чорного пензля. SelectStockObject(WHITE_PEN)– функція для вибору білого пензля. Ellipse ( ) – малює еліпс Остаточно відлагоджений текст програми згідно з отриманим завданням. #include "stdafx.h" #include "MFC 4 LABA.h" #include "math.h" #include "MFC 4 LABADoc.h" #include "MFC 4 LABAView.h" #ifdef _DEBUG #define new DEBUG_NEW #endif void CMFC4LABAView::OnDraw(CDC* dc) { CMFC4LABADoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; RECT rect; GetClientRect(&rect); double xc, yc, r, rd, angle, x, y, h=0.4; double dxc, dyc; xc = rect.right / 2; yc = rect.bottom / 2; rd = 10; double C = 550+rd; x = xc; y = yc + 100; dc->MoveTo( C-rd +18 , C+39-300+1 ); dc->LineTo( C-rd + 18 , C + 9-300+1 ); dc->LineTo( C-rd + 18 , C + 59-300+1 ); dc->MoveTo( C-rd +18 , C+40-300+1 ); dc->LineTo( C-rd + 138 , C + 40-300+1 ); dc->LineTo( C-rd + 138 , C + 9-300+1 ); dc->LineTo( C-rd + 138 , C + 59-300+1 ); while(1){ ///// Хід Праворуч for (angle = 0; angle <= 3.1415*4+3.1415; angle += h/10) { double step= angle*6.3; double angle2 = 3.1415/2; dxc = rd * sin(angle2)+570+step; dyc = -rd * cos(angle2)+250+rd+32; double dxc2 = rd * sin(angle)+dxc; double dyc2 = -rd * cos(angle)+dyc; double dxc1 = rd * sin(angle+3.1415/2)+dxc; double dyc1 = -rd * cos(angle+3.1415/2)+dyc; double dxc3 = rd * sin(angle+3.1415)+dxc; double dyc3 = -rd * cos(angle+3.1415)+dyc; double dxc4 = rd * sin(angle+3.1415+3.1415/2)+dxc; double dyc4 = -rd * cos(angle+3.1415+3.1415/2)+dyc; dc->SelectStockObject(BLACK_PEN); dc->Ellipse(dxc - rd, dyc - rd, dxc + rd, dyc + rd); dc->MoveTo(dxc, dyc); dc->LineTo(dxc2 , dyc2 ); dc->MoveTo(dxc, dyc); dc->LineTo(dxc1 , dyc1 ); dc->MoveTo(dxc, dyc); dc->LineTo(dxc3 , dyc3 ); dc->MoveTo(dxc, dyc); dc->LineTo(dxc4 , dyc4 ); Sleep(10); dc->SelectStockObject(WHITE_PEN); dc->Ellipse(dxc - rd, dyc - rd, dxc + rd, dyc + rd); dc->MoveTo(dxc, dyc); dc->LineTo(dxc2 , dyc2 ); dc->MoveTo(dxc, dyc); dc->LineTo(dxc1 , dyc1 ); dc->MoveTo(dxc, dyc); dc->LineTo(dxc3 , dyc3 ); dc->MoveTo(dxc, dyc); dc->LineTo(dxc4 , dyc4 ); } //// Хід ліворуч for (angle = 3.1415*4-2; angle >= -4.95; angle-= h/10) { double step= angle*6.3; double angle2 = 3.1415/2; dxc = rd * sin(angle2)+600+step; dyc = -rd * cos(angle2)+250+rd+32; double dxc2 = rd * sin(angle)+dxc; double dyc2 = -rd * cos(angle)+dyc; double dxc1 = rd * sin(angle+3.1415/2)+dxc; double dyc1 = -rd * cos(angle+3.1415/2)+dyc; double dxc3 = rd * sin(angle+3.1415)+dxc; double dyc3 = -rd * cos(angle+3.1415)+dyc; double dxc4 = rd * sin(angle+3.1415+3.1415/2)+dxc; double dyc4 = -rd * cos(angle+3.1415+3.1415/2)+dyc; dc->SelectStockObject(BLACK_PEN); dc->Ellipse(dxc - rd, dyc - rd, dxc + rd, dyc + rd); dc->MoveTo(dxc, dyc); dc->LineTo(dxc2 , dyc2 ); dc->MoveTo(dxc, dyc); dc->LineTo(dxc1 , dyc1 ); dc->MoveTo(dxc, dyc); dc->LineTo(dxc3 , dyc3 ); dc->MoveTo(dxc, dyc); dc->LineTo(dxc4 , dyc4 ); Sleep(10); dc->SelectStockObject(WHITE_PEN); dc->Ellipse(dxc - rd, dyc - rd, dxc + rd, dyc + rd); dc->MoveTo(dxc, dyc); dc->LineTo(dxc2 , dyc2 ); dc->MoveTo(dxc, dyc); dc->LineTo(dxc1 , dyc1 ); dc->MoveTo(dxc, dyc); dc->LineTo(...
Антиботан аватар за замовчуванням

02.04.2015 22:04

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини